//7．编写一个程序打开两个文件。可以使用命令行参数或提示用户输入文件名。
//a．该程序以这样的顺序打印：打印第1个文件的第1行，第2个文件的第1行，
//第1个文件的第2行，第2个文件的第2行，以此类推，打印到行数较多文件的最后一行。　　
//b．修改该程序，把行号相同的行打印成一行。

//只支持命令行传参
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mylib.h"
#define SIZE 256

/**
 *
 * @param size
 * @param argv 传打印类型（a|b）和 两个文件名
 * eg: p7 a file1 file2
 */
int main(int size, char **argv) {

    if (size < 4) {
        fputs("必须穿三个参数\n", stderr);
        exit(EXIT_FAILURE);
    }
    FILE *f1, *f2;
    if (strcmp("a", argv[1]) != 0 && strcmp("b", argv[1]) != 0) {
        fputs("Usage: p7 a|b file1 file2\n", stderr);
        exit(EXIT_FAILURE);
    }
    if ((f1 = fopen(argv[2], "r")) == NULL) {
        printf("Can't open %s\n", argv[2]);
        exit(EXIT_FAILURE);
    }
    if ((f2 = fopen(argv[3], "r")) == NULL) {
        printf("Can't open %s\n", argv[3]);
        exit(EXIT_FAILURE);
    }
    char f1_line[SIZE];
    char f2_line[SIZE];
    char *f1_g, *f2_g;
    int lines = 0;
    f1_g = fs_gets(f1_line, SIZE, f1);
    f2_g = fs_gets( f2_line, SIZE,f2);
    while (f1_g != NULL || f2_g != NULL) {
        lines++;
        if (strcmp("a", argv[1]) == 0) {
            if (f1_g != NULL) {
                printf("f1-line%d: %s\n", lines, f1_line);
            }
            if (f2_g != NULL) {
                printf("f1-line%d: %s\n", lines, f2_line);
            }
        } else{
            printf("line%d: ", lines);
            if (f1_g != NULL) {
                printf("%s",f1_line);
            }
            if (f2_g != NULL) {
                printf("%s",f2_line);
            }
            printf("\n");
        }
        f1_g = fs_gets(f1_line, SIZE, f1);
        f2_g = fs_gets( f2_line, SIZE,f2);
    }

    return 0;
}